package utils

import java.lang.Exception

object SafeUtil{
    /**
     * 生成代签名的token
     * content = 用户id+token有效时间+token生成时间戳
     * sign = sha1(content+用户密码)
     * @param id 用户id
     * @param validity 有效期,单位: 秒
     * @param 用户密码
     * @return token = content#sign
     **/
    fun generateToken(id: Int, validity: Long, pwd: String): String{
        val time = System.currentTimeMillis()
        val tmp = "$id%${time+validity*1000}%$time"
        return tmp +"#"+CheckSumUtils.getSHA1(tmp+pwd)
    }

    /**
     * 检验Token内容是否可信, 不检验是否有效
     * @return 可信返回true, 否则为false
     **/
    fun checkToken(token: String, pwd: String): Boolean{
        return try {
            val (content, sign) = token.split("#")
            CheckSumUtils.getSHA1("$content$pwd") == sign
        } catch (e: Exception){
            false
        }
    }
}